Termination of the given ITRSProblem could successfully be proven:



ITRS
  ↳ ITRStoIDPProof

ITRS problem:
The following domains are used:

z

The TRS R consists of the following rules:

rand(x, y) → Cond_rand2(>@z(0@z, x), x, y)
rand(x, y) → Cond_rand(>@z(x, 0@z), x, y)
Cond_rand(TRUE, x, y) → rand(-@z(x, 1@z), id_inc(y))
Cond_rand2(TRUE, x, y) → rand(+@z(x, 1@z), id_dec(y))
rand(x, y) → Cond_rand1(=@z(x, 0@z), x, y)
id_dec(w(x)) → w(-@z(x, 1@z))
random(x) → rand(x, w(0@z))
id_inc(w(x)) → w(+@z(x, 1@z))
id_dec(w(x)) → w(x)
Cond_rand1(TRUE, x, y) → y
id_inc(w(x)) → w(x)

The set Q consists of the following terms:

rand(x0, x1)
Cond_rand(TRUE, x0, x1)
Cond_rand2(TRUE, x0, x1)
id_dec(w(x0))
random(x0)
id_inc(w(x0))
Cond_rand1(TRUE, x0, x1)


Added dependency pairs

↳ ITRS
  ↳ ITRStoIDPProof
IDP
      ↳ UsableRulesProof

I DP problem:
The following domains are used:

z

The ITRS R consists of the following rules:

rand(x, y) → Cond_rand2(>@z(0@z, x), x, y)
rand(x, y) → Cond_rand(>@z(x, 0@z), x, y)
Cond_rand(TRUE, x, y) → rand(-@z(x, 1@z), id_inc(y))
Cond_rand2(TRUE, x, y) → rand(+@z(x, 1@z), id_dec(y))
rand(x, y) → Cond_rand1(=@z(x, 0@z), x, y)
id_dec(w(x)) → w(-@z(x, 1@z))
random(x) → rand(x, w(0@z))
id_inc(w(x)) → w(+@z(x, 1@z))
id_dec(w(x)) → w(x)
Cond_rand1(TRUE, x, y) → y
id_inc(w(x)) → w(x)

The integer pair graph contains the following rules and edges:

(0): COND_RAND2(TRUE, x[0], y[0]) → ID_DEC(y[0])
(1): RAND(x[1], y[1]) → COND_RAND1(=@z(x[1], 0@z), x[1], y[1])
(2): COND_RAND(TRUE, x[2], y[2]) → ID_INC(y[2])
(3): RAND(x[3], y[3]) → COND_RAND(>@z(x[3], 0@z), x[3], y[3])
(4): RAND(x[4], y[4]) → COND_RAND2(>@z(0@z, x[4]), x[4], y[4])
(5): COND_RAND(TRUE, x[5], y[5]) → RAND(-@z(x[5], 1@z), id_inc(y[5]))
(6): COND_RAND2(TRUE, x[6], y[6]) → RAND(+@z(x[6], 1@z), id_dec(y[6]))
(7): RANDOM(x[7]) → RAND(x[7], w(0@z))

(3) -> (2), if ((x[3]* x[2])∧(y[3]* y[2])∧(>@z(x[3], 0@z) →* TRUE))


(3) -> (5), if ((x[3]* x[5])∧(y[3]* y[5])∧(>@z(x[3], 0@z) →* TRUE))


(4) -> (0), if ((x[4]* x[0])∧(y[4]* y[0])∧(>@z(0@z, x[4]) →* TRUE))


(4) -> (6), if ((x[4]* x[6])∧(y[4]* y[6])∧(>@z(0@z, x[4]) →* TRUE))


(5) -> (1), if ((id_inc(y[5]) →* y[1])∧(-@z(x[5], 1@z) →* x[1]))


(5) -> (3), if ((id_inc(y[5]) →* y[3])∧(-@z(x[5], 1@z) →* x[3]))


(5) -> (4), if ((id_inc(y[5]) →* y[4])∧(-@z(x[5], 1@z) →* x[4]))


(6) -> (1), if ((id_dec(y[6]) →* y[1])∧(+@z(x[6], 1@z) →* x[1]))


(6) -> (3), if ((id_dec(y[6]) →* y[3])∧(+@z(x[6], 1@z) →* x[3]))


(6) -> (4), if ((id_dec(y[6]) →* y[4])∧(+@z(x[6], 1@z) →* x[4]))


(7) -> (1), if ((x[7]* x[1]))


(7) -> (3), if ((x[7]* x[3]))


(7) -> (4), if ((x[7]* x[4]))



The set Q consists of the following terms:

rand(x0, x1)
Cond_rand(TRUE, x0, x1)
Cond_rand2(TRUE, x0, x1)
id_dec(w(x0))
random(x0)
id_inc(w(x0))
Cond_rand1(TRUE, x0, x1)


As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
IDP
          ↳ IDependencyGraphProof

I DP problem:
The following domains are used:

z

The ITRS R consists of the following rules:

id_dec(w(x)) → w(-@z(x, 1@z))
id_inc(w(x)) → w(+@z(x, 1@z))
id_dec(w(x)) → w(x)
id_inc(w(x)) → w(x)

The integer pair graph contains the following rules and edges:

(0): COND_RAND2(TRUE, x[0], y[0]) → ID_DEC(y[0])
(1): RAND(x[1], y[1]) → COND_RAND1(=@z(x[1], 0@z), x[1], y[1])
(2): COND_RAND(TRUE, x[2], y[2]) → ID_INC(y[2])
(3): RAND(x[3], y[3]) → COND_RAND(>@z(x[3], 0@z), x[3], y[3])
(4): RAND(x[4], y[4]) → COND_RAND2(>@z(0@z, x[4]), x[4], y[4])
(5): COND_RAND(TRUE, x[5], y[5]) → RAND(-@z(x[5], 1@z), id_inc(y[5]))
(6): COND_RAND2(TRUE, x[6], y[6]) → RAND(+@z(x[6], 1@z), id_dec(y[6]))
(7): RANDOM(x[7]) → RAND(x[7], w(0@z))

(3) -> (2), if ((x[3]* x[2])∧(y[3]* y[2])∧(>@z(x[3], 0@z) →* TRUE))


(3) -> (5), if ((x[3]* x[5])∧(y[3]* y[5])∧(>@z(x[3], 0@z) →* TRUE))


(4) -> (0), if ((x[4]* x[0])∧(y[4]* y[0])∧(>@z(0@z, x[4]) →* TRUE))


(4) -> (6), if ((x[4]* x[6])∧(y[4]* y[6])∧(>@z(0@z, x[4]) →* TRUE))


(5) -> (1), if ((id_inc(y[5]) →* y[1])∧(-@z(x[5], 1@z) →* x[1]))


(5) -> (3), if ((id_inc(y[5]) →* y[3])∧(-@z(x[5], 1@z) →* x[3]))


(5) -> (4), if ((id_inc(y[5]) →* y[4])∧(-@z(x[5], 1@z) →* x[4]))


(6) -> (1), if ((id_dec(y[6]) →* y[1])∧(+@z(x[6], 1@z) →* x[1]))


(6) -> (3), if ((id_dec(y[6]) →* y[3])∧(+@z(x[6], 1@z) →* x[3]))


(6) -> (4), if ((id_dec(y[6]) →* y[4])∧(+@z(x[6], 1@z) →* x[4]))


(7) -> (1), if ((x[7]* x[1]))


(7) -> (3), if ((x[7]* x[3]))


(7) -> (4), if ((x[7]* x[4]))



The set Q consists of the following terms:

rand(x0, x1)
Cond_rand(TRUE, x0, x1)
Cond_rand2(TRUE, x0, x1)
id_dec(w(x0))
random(x0)
id_inc(w(x0))
Cond_rand1(TRUE, x0, x1)


The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
IDP
              ↳ IDPtoQDPProof

I DP problem:
The following domains are used:

z

The ITRS R consists of the following rules:

id_dec(w(x)) → w(-@z(x, 1@z))
id_inc(w(x)) → w(+@z(x, 1@z))
id_dec(w(x)) → w(x)
id_inc(w(x)) → w(x)

The integer pair graph contains the following rules and edges:

(4): RAND(x[4], y[4]) → COND_RAND2(>@z(0@z, x[4]), x[4], y[4])
(5): COND_RAND(TRUE, x[5], y[5]) → RAND(-@z(x[5], 1@z), id_inc(y[5]))
(3): RAND(x[3], y[3]) → COND_RAND(>@z(x[3], 0@z), x[3], y[3])
(6): COND_RAND2(TRUE, x[6], y[6]) → RAND(+@z(x[6], 1@z), id_dec(y[6]))

(5) -> (3), if ((id_inc(y[5]) →* y[3])∧(-@z(x[5], 1@z) →* x[3]))


(3) -> (5), if ((x[3]* x[5])∧(y[3]* y[5])∧(>@z(x[3], 0@z) →* TRUE))


(5) -> (4), if ((id_inc(y[5]) →* y[4])∧(-@z(x[5], 1@z) →* x[4]))


(6) -> (3), if ((id_dec(y[6]) →* y[3])∧(+@z(x[6], 1@z) →* x[3]))


(4) -> (6), if ((x[4]* x[6])∧(y[4]* y[6])∧(>@z(0@z, x[4]) →* TRUE))


(6) -> (4), if ((id_dec(y[6]) →* y[4])∧(+@z(x[6], 1@z) →* x[4]))



The set Q consists of the following terms:

rand(x0, x1)
Cond_rand(TRUE, x0, x1)
Cond_rand2(TRUE, x0, x1)
id_dec(w(x0))
random(x0)
id_inc(w(x0))
Cond_rand1(TRUE, x0, x1)


Represented integers and predefined function symbols by Terms

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
QDP
                  ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

RAND(x[4], y[4]) → COND_RAND2(greater_int(pos(0), x[4]), x[4], y[4])
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))
RAND(x[3], y[3]) → COND_RAND(greater_int(x[3], pos(0)), x[3], y[3])
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))

The TRS R consists of the following rules:

id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_dec(w(x)) → w(x)
id_inc(w(x)) → w(x)
minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), neg(y)) → minus_nat(y, x)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
minus_int(pos(x), neg(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
greater_int(pos(0), pos(0)) → false
greater_int(pos(0), neg(0)) → false
greater_int(neg(0), pos(0)) → false
greater_int(neg(0), neg(0)) → false
greater_int(pos(0), pos(s(y))) → false
greater_int(neg(0), pos(s(y))) → false
greater_int(pos(0), neg(s(y))) → true
greater_int(neg(0), neg(s(y))) → true
greater_int(pos(s(x)), pos(0)) → true
greater_int(neg(s(x)), pos(0)) → false
greater_int(pos(s(x)), neg(0)) → true
greater_int(neg(s(x)), neg(0)) → false
greater_int(pos(s(x)), neg(s(y))) → true
greater_int(neg(s(x)), pos(s(y))) → false
greater_int(pos(s(x)), pos(s(y))) → greater_int(pos(x), pos(y))
greater_int(neg(s(x)), neg(s(y))) → greater_int(neg(x), neg(y))

The set Q consists of the following terms:

rand(x0, x1)
Cond_rand(true, x0, x1)
Cond_rand2(true, x0, x1)
id_dec(w(x0))
random(x0)
id_inc(w(x0))
Cond_rand1(true, x0, x1)
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
QDP
                      ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

RAND(x[4], y[4]) → COND_RAND2(greater_int(pos(0), x[4]), x[4], y[4])
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))
RAND(x[3], y[3]) → COND_RAND(greater_int(x[3], pos(0)), x[3], y[3])
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))

The TRS R consists of the following rules:

greater_int(pos(0), pos(0)) → false
greater_int(neg(0), pos(0)) → false
greater_int(pos(s(x)), pos(0)) → true
greater_int(neg(s(x)), pos(0)) → false
minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greater_int(pos(0), neg(0)) → false
greater_int(pos(0), pos(s(y))) → false
greater_int(pos(0), neg(s(y))) → true
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

rand(x0, x1)
Cond_rand(true, x0, x1)
Cond_rand2(true, x0, x1)
id_dec(w(x0))
random(x0)
id_inc(w(x0))
Cond_rand1(true, x0, x1)
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

rand(x0, x1)
Cond_rand(true, x0, x1)
Cond_rand2(true, x0, x1)
random(x0)
Cond_rand1(true, x0, x1)



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
QDP
                          ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

RAND(x[4], y[4]) → COND_RAND2(greater_int(pos(0), x[4]), x[4], y[4])
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))
RAND(x[3], y[3]) → COND_RAND(greater_int(x[3], pos(0)), x[3], y[3])
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))

The TRS R consists of the following rules:

greater_int(pos(0), pos(0)) → false
greater_int(neg(0), pos(0)) → false
greater_int(pos(s(x)), pos(0)) → true
greater_int(neg(s(x)), pos(0)) → false
minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greater_int(pos(0), neg(0)) → false
greater_int(pos(0), pos(s(y))) → false
greater_int(pos(0), neg(s(y))) → true
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
By narrowing [LPAR04] the rule RAND(x[4], y[4]) → COND_RAND2(greater_int(pos(0), x[4]), x[4], y[4]) at position [0] we obtained the following new rules [LPAR04]:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(0), y1) → COND_RAND2(false, pos(0), y1)
RAND(pos(s(x0)), y1) → COND_RAND2(false, pos(s(x0)), y1)
RAND(neg(0), y1) → COND_RAND2(false, neg(0), y1)



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
QDP
                              ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))
RAND(x[3], y[3]) → COND_RAND(greater_int(x[3], pos(0)), x[3], y[3])
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))
RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(0), y1) → COND_RAND2(false, pos(0), y1)
RAND(pos(s(x0)), y1) → COND_RAND2(false, pos(s(x0)), y1)
RAND(neg(0), y1) → COND_RAND2(false, neg(0), y1)

The TRS R consists of the following rules:

greater_int(pos(0), pos(0)) → false
greater_int(neg(0), pos(0)) → false
greater_int(pos(s(x)), pos(0)) → true
greater_int(neg(s(x)), pos(0)) → false
minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greater_int(pos(0), neg(0)) → false
greater_int(pos(0), pos(s(y))) → false
greater_int(pos(0), neg(s(y))) → true
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
QDP
                                  ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

RAND(x[3], y[3]) → COND_RAND(greater_int(x[3], pos(0)), x[3], y[3])
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))
RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))

The TRS R consists of the following rules:

greater_int(pos(0), pos(0)) → false
greater_int(neg(0), pos(0)) → false
greater_int(pos(s(x)), pos(0)) → true
greater_int(neg(s(x)), pos(0)) → false
minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greater_int(pos(0), neg(0)) → false
greater_int(pos(0), pos(s(y))) → false
greater_int(pos(0), neg(s(y))) → true
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
QDP
                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

RAND(x[3], y[3]) → COND_RAND(greater_int(x[3], pos(0)), x[3], y[3])
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))
RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greater_int(pos(0), pos(0)) → false
greater_int(neg(0), pos(0)) → false
greater_int(pos(s(x)), pos(0)) → true
greater_int(neg(s(x)), pos(0)) → false
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
By narrowing [LPAR04] the rule RAND(x[3], y[3]) → COND_RAND(greater_int(x[3], pos(0)), x[3], y[3]) at position [0] we obtained the following new rules [LPAR04]:

RAND(pos(0), y1) → COND_RAND(false, pos(0), y1)
RAND(neg(s(x0)), y1) → COND_RAND(false, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
RAND(neg(0), y1) → COND_RAND(false, neg(0), y1)



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
QDP
                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))
RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))
RAND(pos(0), y1) → COND_RAND(false, pos(0), y1)
RAND(neg(s(x0)), y1) → COND_RAND(false, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
RAND(neg(0), y1) → COND_RAND(false, neg(0), y1)

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greater_int(pos(0), pos(0)) → false
greater_int(neg(0), pos(0)) → false
greater_int(pos(s(x)), pos(0)) → true
greater_int(neg(s(x)), pos(0)) → false
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
QDP
                                              ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
greater_int(pos(0), pos(0)) → false
greater_int(neg(0), pos(0)) → false
greater_int(pos(s(x)), pos(0)) → true
greater_int(neg(s(x)), pos(0)) → false
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
QDP
                                                  ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

greater_int(pos(0), pos(0))
greater_int(pos(0), neg(0))
greater_int(neg(0), pos(0))
greater_int(neg(0), neg(0))
greater_int(pos(0), pos(s(x0)))
greater_int(neg(0), pos(s(x0)))
greater_int(pos(0), neg(s(x0)))
greater_int(neg(0), neg(s(x0)))
greater_int(pos(s(x0)), pos(0))
greater_int(neg(s(x0)), pos(0))
greater_int(pos(s(x0)), neg(0))
greater_int(neg(s(x0)), neg(0))
greater_int(pos(s(x0)), neg(s(x1)))
greater_int(neg(s(x0)), pos(s(x1)))
greater_int(pos(s(x0)), pos(s(x1)))
greater_int(neg(s(x0)), neg(s(x1)))



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
QDP
                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6]))
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By narrowing [LPAR04] the rule COND_RAND2(true, x[6], y[6]) → RAND(plus_int(pos(s(0)), x[6]), id_dec(y[6])) at position [0] we obtained the following new rules [LPAR04]:

COND_RAND2(true, pos(x1), y1) → RAND(pos(plus_nat(s(0), x1)), id_dec(y1))
COND_RAND2(true, neg(x1), y1) → RAND(minus_nat(s(0), x1), id_dec(y1))



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
QDP
                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))
COND_RAND2(true, pos(x1), y1) → RAND(pos(plus_nat(s(0), x1)), id_dec(y1))
COND_RAND2(true, neg(x1), y1) → RAND(minus_nat(s(0), x1), id_dec(y1))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
QDP
                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

COND_RAND2(true, neg(x1), y1) → RAND(minus_nat(s(0), x1), id_dec(y1))
RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5]))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By narrowing [LPAR04] the rule COND_RAND(true, x[5], y[5]) → RAND(minus_int(x[5], pos(s(0))), id_inc(y[5])) at position [0] we obtained the following new rules [LPAR04]:

COND_RAND(true, pos(x0), y1) → RAND(minus_nat(x0, s(0)), id_inc(y1))
COND_RAND(true, neg(x0), y1) → RAND(neg(plus_nat(x0, s(0))), id_inc(y1))



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
QDP
                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

COND_RAND2(true, neg(x1), y1) → RAND(minus_nat(s(0), x1), id_dec(y1))
RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, pos(x0), y1) → RAND(minus_nat(x0, s(0)), id_inc(y1))
COND_RAND(true, neg(x0), y1) → RAND(neg(plus_nat(x0, s(0))), id_inc(y1))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
QDP
                                                                      ↳ Instantiation

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
COND_RAND2(true, neg(x1), y1) → RAND(minus_nat(s(0), x1), id_dec(y1))
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, pos(x0), y1) → RAND(minus_nat(x0, s(0)), id_inc(y1))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By instantiating [LPAR04] the rule COND_RAND2(true, neg(x1), y1) → RAND(minus_nat(s(0), x1), id_dec(y1)) we obtained the following new rules [LPAR04]:

COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(s(0), s(z0)), id_dec(z1))



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Instantiation
QDP
                                                                          ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, pos(x0), y1) → RAND(minus_nat(x0, s(0)), id_inc(y1))
COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(s(0), s(z0)), id_dec(z1))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [LPAR04] the rule COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(s(0), s(z0)), id_dec(z1)) at position [0] we obtained the following new rules [LPAR04]:

COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(0, z0), id_dec(z1))



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Instantiation
                                                                        ↳ QDP
                                                                          ↳ Rewriting
QDP
                                                                              ↳ Instantiation

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND(true, pos(x0), y1) → RAND(minus_nat(x0, s(0)), id_inc(y1))
COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(0, z0), id_dec(z1))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By instantiating [LPAR04] the rule COND_RAND(true, pos(x0), y1) → RAND(minus_nat(x0, s(0)), id_inc(y1)) we obtained the following new rules [LPAR04]:

COND_RAND(true, pos(s(z0)), z1) → RAND(minus_nat(s(z0), s(0)), id_inc(z1))



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Instantiation
                                                                        ↳ QDP
                                                                          ↳ Rewriting
                                                                            ↳ QDP
                                                                              ↳ Instantiation
QDP
                                                                                  ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(0, z0), id_dec(z1))
COND_RAND(true, pos(s(z0)), z1) → RAND(minus_nat(s(z0), s(0)), id_inc(z1))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [LPAR04] the rule COND_RAND(true, pos(s(z0)), z1) → RAND(minus_nat(s(z0), s(0)), id_inc(z1)) at position [0] we obtained the following new rules [LPAR04]:

COND_RAND(true, pos(s(z0)), z1) → RAND(minus_nat(z0, 0), id_inc(z1))



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Instantiation
                                                                        ↳ QDP
                                                                          ↳ Rewriting
                                                                            ↳ QDP
                                                                              ↳ Instantiation
                                                                                ↳ QDP
                                                                                  ↳ Rewriting
QDP
                                                                                      ↳ MRRProof

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(0, z0), id_dec(z1))
COND_RAND(true, pos(s(z0)), z1) → RAND(minus_nat(z0, 0), id_inc(z1))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
id_inc(w(x)) → w(x)
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(minus_int(x, pos(s(0))))
id_dec(w(x)) → w(x)

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.

Strictly oriented rules of the TRS R:

id_inc(w(x)) → w(x)
minus_nat(s(x), s(y)) → minus_nat(x, y)
id_dec(w(x)) → w(x)

Used ordering: Polynomial interpretation [POLO]:

POL(0) = 0   
POL(COND_RAND(x1, x2, x3)) = x1 + x2 + x3   
POL(COND_RAND2(x1, x2, x3)) = x1 + x2 + x3   
POL(RAND(x1, x2)) = x1 + x2   
POL(id_dec(x1)) = 1 + x1   
POL(id_inc(x1)) = 1 + x1   
POL(minus_int(x1, x2)) = x1 + x2   
POL(minus_nat(x1, x2)) = x1 + x2   
POL(neg(x1)) = x1   
POL(plus_int(x1, x2)) = x1 + x2   
POL(plus_nat(x1, x2)) = x1 + x2   
POL(pos(x1)) = x1   
POL(s(x1)) = 1 + x1   
POL(true) = 0   
POL(w(x1)) = x1   



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Instantiation
                                                                        ↳ QDP
                                                                          ↳ Rewriting
                                                                            ↳ QDP
                                                                              ↳ Instantiation
                                                                                ↳ QDP
                                                                                  ↳ Rewriting
                                                                                    ↳ QDP
                                                                                      ↳ MRRProof
QDP
                                                                                          ↳ MRRProof

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)
COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(0, z0), id_dec(z1))
COND_RAND(true, pos(s(z0)), z1) → RAND(minus_nat(z0, 0), id_inc(z1))

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
id_dec(w(x)) → w(minus_int(x, pos(s(0))))

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

COND_RAND2(true, neg(s(z0)), z1) → RAND(minus_nat(0, z0), id_dec(z1))
COND_RAND(true, pos(s(z0)), z1) → RAND(minus_nat(z0, 0), id_inc(z1))


Used ordering: Polynomial interpretation [POLO]:

POL(0) = 0   
POL(COND_RAND(x1, x2, x3)) = x1 + 2·x2 + x3   
POL(COND_RAND2(x1, x2, x3)) = x1 + 2·x2 + x3   
POL(RAND(x1, x2)) = 2·x1 + x2   
POL(id_dec(x1)) = 2 + x1   
POL(id_inc(x1)) = 2 + x1   
POL(minus_int(x1, x2)) = x1 + x2   
POL(minus_nat(x1, x2)) = x1 + x2   
POL(neg(x1)) = x1   
POL(plus_int(x1, x2)) = x1 + x2   
POL(plus_nat(x1, x2)) = x1 + x2   
POL(pos(x1)) = x1   
POL(s(x1)) = 2 + x1   
POL(true) = 0   
POL(w(x1)) = x1   



↳ ITRS
  ↳ ITRStoIDPProof
    ↳ IDP
      ↳ UsableRulesProof
        ↳ IDP
          ↳ IDependencyGraphProof
            ↳ IDP
              ↳ IDPtoQDPProof
                ↳ QDP
                  ↳ UsableRulesProof
                    ↳ QDP
                      ↳ QReductionProof
                        ↳ QDP
                          ↳ Narrowing
                            ↳ QDP
                              ↳ DependencyGraphProof
                                ↳ QDP
                                  ↳ UsableRulesProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ UsableRulesProof
                                                ↳ QDP
                                                  ↳ QReductionProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Instantiation
                                                                        ↳ QDP
                                                                          ↳ Rewriting
                                                                            ↳ QDP
                                                                              ↳ Instantiation
                                                                                ↳ QDP
                                                                                  ↳ Rewriting
                                                                                    ↳ QDP
                                                                                      ↳ MRRProof
                                                                                        ↳ QDP
                                                                                          ↳ MRRProof
QDP
                                                                                              ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

RAND(neg(s(x0)), y1) → COND_RAND2(true, neg(s(x0)), y1)
RAND(pos(s(x0)), y1) → COND_RAND(true, pos(s(x0)), y1)

The TRS R consists of the following rules:

minus_int(pos(x), pos(y)) → minus_nat(x, y)
minus_int(neg(x), pos(y)) → neg(plus_nat(x, y))
id_inc(w(x)) → w(plus_int(pos(s(0)), x))
plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
id_dec(w(x)) → w(minus_int(x, pos(s(0))))

The set Q consists of the following terms:

id_dec(w(x0))
id_inc(w(x0))
minus_int(pos(x0), pos(x1))
minus_int(neg(x0), neg(x1))
minus_int(neg(x0), pos(x1))
minus_int(pos(x0), neg(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.